Imports System.Data.Odbc
Imports System.Data.OleDb

Public Class frmEmpleados
    Private Empleados As New clsEMPLEADOS

    Private Sub frmEmpleados_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

        Timer1.Enabled = True


    End Sub
    Sub CargaEmpleados()
        Timer1.Enabled = False

        Dim FechaUltimaNomina As Date = BuscarDateDatoNOI("SELECT FECH_NOMI FROM NWNOMINAS01 ORDER BY FECH_NOMI DESC")
        Dim Mes As Integer = FechaUltimaNomina.Month
        Dim diastr As String = ""
        Dim messtr As String = ""

        If FechaUltimaNomina.Day < 10 Then
            diastr = "0" & FechaUltimaNomina.Day
        Else
            diastr = FechaUltimaNomina.Day
        End If

        If FechaUltimaNomina.Month < 10 Then
            messtr = "0" & FechaUltimaNomina.Month
        Else
            messtr = FechaUltimaNomina.Month
        End If

        TABLA = "TB" & diastr & messtr & Mid(FechaUltimaNomina.Year, 3, 2) & "01"

        Dim cnConn As New OdbcConnection
        cnConn.ConnectionString = NoiConnection

        Dim strSql As String
        Dim cmdBuscar As New OdbcCommand
        Dim rdBuscar As OdbcDataReader

        'PENDIENTE  WHERE DEPTO IN (" & ClavesDepto & ")

        strSql = "SELECT * FROM " & TABLA

        cnConn.Open()
        cmdBuscar.Connection = cnConn
        cmdBuscar.CommandText = strSql

        Dim NOMBRE As String = ""
        Dim FECHA_BAJA As Date = Now()
        Dim NOM As String = ""
        Dim PAT As String = ""
        Dim MAT As String = ""
        Dim FECHA_ALTA As Date = Now()
        Dim FECHA_SAL As Date = Now()
        Dim FECHA_NAC As Date = Now()

        Try
            rdBuscar = cmdBuscar.ExecuteReader
            Empleados.CONECTA_BD()

            Do While rdBuscar.Read
                If IsDBNull(rdBuscar("NOMBRE")) Then
                    NOM = "(Desconocido)"
                Else
                    NOM = rdBuscar("NOMBRE")
                End If

                If IsDBNull(rdBuscar("AP_PAT_")) Then
                    PAT = "(Desconocido)"
                Else
                    PAT = rdBuscar("AP_PAT_")
                End If

                If IsDBNull(rdBuscar("AP_MAT_")) Then
                    MAT = "(Desconocido)"
                Else
                    MAT = rdBuscar("AP_MAT_")
                End If

                NOMBRE = "Actualizando empleados: " & NOM & " " & PAT & " " & MAT
                lblSatus.Text = NOMBRE
                Application.DoEvents()
                If IsDBNull(rdBuscar("FECH_BAJA")) Then
                    FECHA_BAJA = Now()
                Else
                    FECHA_BAJA = rdBuscar("FECH_BAJA")
                End If

                If IsDBNull(rdBuscar("FECH_ALTA")) Then
                    FECHA_ALTA = Now()
                Else
                    FECHA_BAJA = rdBuscar("FECH_ALTA")
                End If

                If IsDBNull(rdBuscar("FECH_SAL")) Then
                    FECHA_SAL = Now()
                Else
                    FECHA_SAL = rdBuscar("FECH_SAL")
                End If

                If IsDBNull(rdBuscar("FECH_SAL")) Then
                    FECHA_SAL = Now()
                Else
                    FECHA_SAL = rdBuscar("FECH_SAL")
                End If
                'FECH_NACIM
                If IsDBNull(rdBuscar("FECH_NACIM")) Then
                    FECHA_NAC = Now()
                Else
                    FECHA_NAC = rdBuscar("FECH_NACIM")
                End If

                Try
                    Empleados.GUARDA_EMPLEADO(CStr(rdBuscar("CLAVE").ToString.Trim), rdBuscar("NOMBRE"), rdBuscar("AP_PAT_"), rdBuscar("AP_MAT_"), rdBuscar("STATUS"), rdBuscar("R_F_C_"), CStr(rdBuscar("DEPTO").ToString.Trim), CStr(rdBuscar("PUESTO").ToString.Trim), rdBuscar("IMSS"), rdBuscar("CLASIF"), FECHA_ALTA, FECHA_BAJA, rdBuscar("SAL_DIARIO"), rdBuscar("SDI"), rdBuscar("SDI_INFO"), FECHA_SAL, rdBuscar("CALLE"), rdBuscar("COLONIA"), rdBuscar("CD_POBLAC"), rdBuscar("ENT_FED"), rdBuscar("COD_POST"), rdBuscar("CTACHEQNOM"), rdBuscar("LUG_NACIM"), rdBuscar("EDO_CIVIL"), rdBuscar("UN_MED_FAM"), rdBuscar("TIPOSANGRE"), rdBuscar("PENS_ALIM"), rdBuscar("CAUSABAJA"), rdBuscar("NOM_PADRE"), rdBuscar("NOM_MADRE"), rdBuscar("TELEFONO"), rdBuscar("SEXO"), FECHA_NAC, rdBuscar("CURP"), rdBuscar("SUELDOXHORA"), rdBuscar("TELEFONO2"))
                Catch ex As Exception
                    MsgBox(ex.Message, MsgBoxStyle.Information, "Aviso")
                End Try


            Loop
            Empleados.Cerrar_BD()
            cnConn.Close()

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Information, "Aviso")
            Empleados.Cerrar_BD()
            If cnConn.State = ConnectionState.Open Then
                cnConn.Close()
            End If
        End Try

        lblSatus.Text = "Listo"
        Application.DoEvents()

        CargaEmpleados_Reloj()


    End Sub
    Sub CargaEmpleados_Reloj()
        Dim cnConn As New OleDbConnection
        cnConn.ConnectionString = RelojConnection

        Dim strSql As String
        Dim cmdBuscar As New OleDbCommand
        Dim rdBuscar As OleDbDataReader

        'PENDIENTE  WHERE DEPTO IN (" & ClavesDepto & ")

        strSql = "SELECT * FROM USERINFO"

        cnConn.Open()
        cmdBuscar.Connection = cnConn
        cmdBuscar.CommandText = strSql

        Dim NAME As String = ""

        Try
            rdBuscar = cmdBuscar.ExecuteReader
            Empleados.CONECTA_BD_RELOJ()

            Do While rdBuscar.Read
                If IsDBNull(rdBuscar("NAME")) Then
                    NAME = "(Desconocido)"
                Else
                    NAME = rdBuscar("NAME")
                End If

                lblSatus.Text = "Importando usuarios del reloj: " & NAME

                Try
                    Empleados.GUARDA_USUARIO(rdBuscar("USERID"), rdBuscar("BADGENUMBER"), NAME)
                Catch ex As Exception
                    MsgBox(ex.Message, MsgBoxStyle.Information, "Aviso")
                End Try


            Loop
            Empleados.Cerrar_BD()
            cnConn.Close()

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Information, "Aviso")
            Empleados.Cerrar_BD()
            If cnConn.State = ConnectionState.Open Then
                cnConn.Close()
            End If
        End Try

        lblSatus.Text = "Listo"
        Application.DoEvents()


    End Sub
    Private Sub lblSatus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblSatus.Click


    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        CargaEmpleados()
    End Sub
End Class